'''RDD数据计算_flatMap
 flatMap 算子 功能：对rdd执行map操作后，进行解除嵌套操作；
 解除嵌套：
    嵌套list
    lst = [[1,2,3],[4,5,6],[7,8,9]]
    解除嵌套list
    lst = [1,2,3,4,5,6,7,8,9]
'''

from pyspark import SparkConf, SparkContext
# 使用os 配置python安装位置， 帮助spark找到python;
import os
os.environ['PYSPARK_PYTHON'] = 'D:\\yfxdeve\\python\Python39\\python.exe'

conf = SparkConf().setMaster("local[*]").setAppName("test_park")
sc = SparkContext(conf=conf)


# 准备一个rdd
rdd1 = sc.parallelize(["hello world 666", "yestady moeny", "kjas akljga"])
rdd2 = rdd1.map(lambda x: x.split(" "))
# print(rdd2.collect()) # [['hello', 'world', '666'], ['yestady', 'moeny'], ['kjas', 'akljga']]

# 需求：将rdd1中的内容将每一个单词，都提取出来；
# rdd2 = rdd1.flatMap(lambda  x: x.split(" "))
print(rdd2.collect())   # ['hello', 'world', '666', 'yestady', 'moeny', 'kjas', 'akljga']


# 关闭
sc.stop()